package com.ruoyi.mall.domain;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.List;

/**
 * 商品信息对象 t_goods
 *
 * @author ruoyi
 * @date 2025-08-13
 */
public class Goods extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 商品ID
     */
    private Long id;

    /**
     * 商品名称
     */
    @Excel(name = "商品名称")
    private String name;

    /**
     * 商品价格
     */
    @Excel(name = "商品价格")
    private BigDecimal price;

    /**
     * 商品分类
     */
    @Excel(name = "商品分类")
    private Long gatgoryId;

    @Excel(name = "所属分类")
    private String gatgoryName;

    /**
     * 展示图
     */
    @Excel(name = "展示图")
    private String imgShow;

    /**
     * 多例图
     */
    @Excel(name = "多例图")
    private String imgs;

    /**
     * 库存
     */
    @Excel(name = "库存")
    private Long inventory;

    /**
     * 已售
     */
    @Excel(name = "已售")
    private Long sold;

    /**
     * 邮费金额
     */
    @Excel(name = "邮费金额")
    private BigDecimal shippingFee;

    /**
     * 商品详情
     */
    @Excel(name = "商品详情")
    private String detail;

    /**
     * 发货
     */
    @Excel(name = "发货")
    private String sendout;

    /**
     * 邮费
     */
    @Excel(name = "邮费")
    private String postage;

    /**
     * 货源
     */
    @Excel(name = "货源")
    private String source;

    /**
     * 状态
     */
    @Excel(name = "状态")
    private Long state;

    /**
     * 排序
     */
    @Excel(name = "排序")
    private Long sort;

    /**
     * 是否删除
     */
    private Long isDelete;

    /**
     * 漫券支付数量
     */
    @Excel(name = "漫券支付数量")
    private BigDecimal ticketNum;

    private List<Specifications> specificationsList;
    private List<ProductSkus> productSkuses;

    public List<Specifications> getSpecificationsList() {
        return specificationsList;
    }

    public void setSpecificationsList(List<Specifications> specificationsList) {
        this.specificationsList = specificationsList;
    }

    public List<ProductSkus> getProductSkuses() {
        return productSkuses;
    }

    public void setProductSkuses(List<ProductSkus> productSkuses) {
        this.productSkuses = productSkuses;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setGatgoryId(Long gatgoryId) {
        this.gatgoryId = gatgoryId;
    }

    public Long getGatgoryId() {
        return gatgoryId;
    }

    public void setImgShow(String imgShow) {
        this.imgShow = imgShow;
    }

    public String getImgShow() {
        return imgShow;
    }

    public void setImgs(String imgs) {
        this.imgs = imgs;
    }

    public String getImgs() {
        return imgs;
    }

    public void setInventory(Long inventory) {
        this.inventory = inventory;
    }

    public Long getInventory() {
        return inventory;
    }

    public void setSold(Long sold) {
        this.sold = sold;
    }

    public Long getSold() {
        return sold;
    }

    public void setShippingFee(BigDecimal shippingFee) {
        this.shippingFee = shippingFee;
    }

    public BigDecimal getShippingFee() {
        return shippingFee;
    }

    public void setDetail(String detail) {
        this.detail = detail;
    }

    public String getDetail() {
        return detail;
    }

    public void setSendout(String sendout) {
        this.sendout = sendout;
    }

    public String getSendout() {
        return sendout;
    }

    public void setPostage(String postage) {
        this.postage = postage;
    }

    public String getPostage() {
        return postage;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getSource() {
        return source;
    }

    public void setState(Long state) {
        this.state = state;
    }

    public Long getState() {
        return state;
    }

    public void setSort(Long sort) {
        this.sort = sort;
    }

    public Long getSort() {
        return sort;
    }

    public void setIsDelete(Long isDelete) {
        this.isDelete = isDelete;
    }

    public Long getIsDelete() {
        return isDelete;
    }

    public void setTicketNum(BigDecimal ticketNum) {
        this.ticketNum = ticketNum;
    }

    public BigDecimal getTicketNum() {
        return ticketNum;
    }

    public String getGatgoryName() {
        return gatgoryName;
    }

    public void setGatgoryName(String gatgoryName) {
        this.gatgoryName = gatgoryName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("name", getName())
                .append("price", getPrice())
                .append("gatgoryId", getGatgoryId())
                .append("imgShow", getImgShow())
                .append("imgs", getImgs())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .append("inventory", getInventory())
                .append("sold", getSold())
                .append("shippingFee", getShippingFee())
                .append("detail", getDetail())
                .append("sendout", getSendout())
                .append("postage", getPostage())
                .append("source", getSource())
                .append("state", getState())
                .append("sort", getSort())
                .append("isDelete", getIsDelete())
                .append("ticketNum", getTicketNum())
                .toString();
    }
}
